﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Actya.Core.Infrastructure;

namespace Actya.Core.SiteStructure
{
	/// <summary>
	/// The page layout class defines what the page is going to look like.
	/// </summary>
	public class PageLayout
	{
		public string Id { get; set; }

		/// <summary>
		/// Readable name for the page layout.
		/// </summary>
		[Required]
		public string Name { get; set; }

		/// <summary>
		/// The page type belongs to the layout.
		/// </summary>
		[Required]
		public string PageType { get; set; }

		/// <summary>
		/// Theme name (optional). When left empty, the default theme for the site is picked.
		/// </summary>
		public string Theme { get; set; }

		/// <summary>
		/// The associated widgets.
		/// </summary>
		public Dictionary<string, List<string>> Widgets { get; set; }

		public PageLayout()
		{
			this.Widgets = new Dictionary<string, List<string>>();
		}
	}
}
